package cn.sjx.modules.nbiot.business;

import cn.sjx.modules.nbiot.entity.common.AckEnum;
import cn.sjx.modules.nbiot.entity.receive.IotProtocolReceiveBase;

/**
 * 地磁报文具体业务处理 接口
 *
 * <p>
 *  返回业务指令数据为（需判断每条指令的情况，默认返回0x70指令）：
 *      0x70：确认ACK 成功
 *      0x29: 业务处理未完成，通知检查服务器
 *      0x07：收到同一地磁设备的重复进场数据
 *      0x10：收到同一地磁设备的重复离场数据
 *      0x24：地磁设备不存在
 *
 *  需操作业务：
 *      1. 过滤重复入场/离场数据
 *      2. 生成停车订单
 *      3. 记录地磁状态日志
 * </p>
 *
 * @Author: sjx
 * @Date: 2019年09月02日 0002 19:07:18
 */
public interface IGeomagneticUdpBusinessHandler {

    /**
     * 具体业务处理方法，针对 接收地磁数据、心跳报文的实现
     *
     * @param receiveBase       接收到的数据实体类
     * @param receiveHexDataStr 接收到的原始十六进制数据
     * @return
     * @throws Exception
     */
    public abstract AckEnum handler (IotProtocolReceiveBase receiveBase, String receiveHexDataStr) throws Exception;

}
